ECS で依存関係を設定したタスクのヘルスステータスがUNHEALTHYのまま終了しないときの対処方法
困っていた内容
ECS でタスク内に複数のコンテナを定義し、依存関係とコンテナへのヘルスチェックを設定しています。
新しいタスクをデプロイしたところヘルスチェックに失敗し、ヘルスステータスがUNHEALTHY
になりましたが、タスクが終了しません。何か設定が足りていないのでしょうか。
どう対応すればいいの?
ECS タスク定義のstartTimeout
を設定してください。
startTimeout
タイプ: 整数
必須: いいえ
値の例: 120
コンテナの依存関係解決の再試行を止めるまでの待機時間 (秒)。
ヘルスステータスがUNHEALTHY
になるとタスクの自動終了が期待されますが、コンテナの依存関係を設定している場合、タスクは依存関係を満たすまで待機します。依存関係の解決が継続する状況を避けたい場合は、依存関係のタイムアウト時間(startTimeout
)を設定する必要があります。
注記
コンテナが依存関係の制約を満たさない場合、または制約を満たす前にタイムアウトした場合、Amazon ECS は依存コンテナを次の状態に進めません。
なお、現時点の挙動としてstartTimeout
を指定しない状態でも、3時間待機すると「停止理由:Service : task last status remained in PENDING too long.
」自動終了しました。